/*     */ package com.wgcloud.util.license;
/*     */ 
/*     */ import cn.hutool.core.codec.Base64;
/*     */ import com.wgcloud.common.ApplicationContextHelper;
/*     */ import com.wgcloud.entity.SystemInfo;
/*     */ import com.wgcloud.service.LogInfoService;
/*     */ import com.wgcloud.util.DateUtil;
/*     */ import com.wgcloud.util.license.RSAEncrypt;
/*     */ import com.wgcloud.util.staticvar.StaticKeys;
/*     */ import java.io.BufferedReader;
/*     */ import java.io.File;
/*     */ import java.io.FileReader;
/*     */ import java.io.IOException;
/*     */ import javax.servlet.http.HttpServletRequest;
/*     */ import org.apache.commons.lang3.StringUtils;
/*     */ import org.slf4j.Logger;
/*     */ import org.slf4j.LoggerFactory;
/*     */ import org.springframework.ui.Model;
/*     */ 
/*     */ public class LicenseUtil
/*     */ {
/*  22 */   private static final Logger logger = LoggerFactory.getLogger(com.wgcloud.util.license.LicenseUtil.class);
/*  23 */   private static LogInfoService logInfoService = (LogInfoService)ApplicationContextHelper.getBean(LogInfoService.class);
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   private static String readLicFile(String path) {
/*  33 */     File file = new File(path);
/*  34 */     if (!file.exists()) {
/*  35 */       logger.info("未检测到授权文件----------------");
/*  36 */       return "";
/*     */     } 
/*  38 */     BufferedReader br = null;
/*     */     try {
/*  40 */       br = new BufferedReader(new FileReader(path));
/*  41 */       String readLine = null;
/*  42 */       StringBuilder sb = new StringBuilder();
/*  43 */       while ((readLine = br.readLine()) != null) {
/*  44 */         sb.append(readLine);
/*     */       }
/*  46 */       return sb.toString().trim();
/*  47 */     } catch (Exception e) {
/*  48 */       e.printStackTrace();
/*     */     } finally {
/*  50 */       if (br != null) {
/*     */         try {
/*  52 */           br.close();
/*  53 */         } catch (IOException e) {
/*  54 */           e.printStackTrace();
/*     */         } 
/*     */       }
/*     */     } 
/*  58 */     return "";
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public static String validateLicense(int agentNum) {
/*     */     try {
/*  70 */       String path = System.getProperty("user.dir");
/*  71 */       String licenseStr = readLicFile(path + "/license.txt");
/*  72 */       if (StringUtils.isEmpty(licenseStr)) {
/*  73 */         logger.info("没有检测到授权文件/server/license.txt，当前版本重置为个人版");
/*  74 */         return "0";
/*     */       } 
/*     */       
/*  77 */       byte[] res = RSAEncrypt.decrypt(RSAEncrypt.loadPublicKeyByStr("MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCJgRaOg/qygEtsVWTl+35+RN77mmT6Pjl2v/UZExxH4LmVMFx2U2vHz53tSfWJ0sshuPbn2Y5QOst6BEwrKHNL4/w/Iqc/Rv4Q8hiUIQZtd/M1Yq82+uRKsdmIi6gXLZXQmoUjRTmssGutNonRcnyeowpE4LX6YV1B8Dh8vdgXuwIDAQAB"), Base64.decode(licenseStr));
/*  78 */       String restr = new String(res);
/*  79 */       if (StringUtils.isEmpty(restr)) {
/*  80 */         logger.info("license解密公钥为空");
/*  81 */         return "0";
/*     */       } 
/*     */ 
/*     */       
/*  85 */       String[] restrs = restr.split("-");
/*  86 */       String date = restrs[0];
/*  87 */       String num = restrs[1];
/*  88 */       String name = restrs[2];
/*  89 */       StaticKeys.LICENSE_DATE = date;
/*  90 */       StaticKeys.LICENSE_NUM = Integer.valueOf(num).intValue();
/*  91 */       logger.info("license解析成功：到期时间" + (StaticKeys.LICENSE_DATE.startsWith("2099") ? "永久授权" : StaticKeys.LICENSE_DATE) + "，授权节点数量" + StaticKeys.LICENSE_NUM + "，客户名称" + name);
/*     */ 
/*     */ 
/*     */       
/*  95 */       long LICENSE_DATE = Long.valueOf(date).longValue();
/*  96 */       int LICENSE_NUM = Integer.valueOf(num).intValue();
/*  97 */       if (agentNum > LICENSE_NUM) {
/*  98 */         logInfoService.save("授权解析错误", "监控节点超过授权节点数量：" + num + "，当前监控节点数量：" + agentNum, "1");
/*  99 */         logger.info("监控节点超过授权节点数量，当前监控节点数量" + agentNum);
/* 100 */         return "3";
/*     */       } 
/*     */ 
/*     */ 
/*     */       
/* 105 */       Long nowDate = Long.valueOf(DateUtil.getCurrentDate().replace("-", ""));
/* 106 */       if (nowDate.longValue() > LICENSE_DATE) {
/* 107 */         logInfoService.save("授权解析错误", "授权已经到期：" + date, "1");
/* 108 */         logger.info("授权已经到期");
/* 109 */         return "2";
/*     */       } 
/*     */       
/* 112 */       StaticKeys.LICENSE_PAGE = StaticKeys.LICENSE_NUM / 20 + 1;
/* 113 */     } catch (Exception e) {
/* 114 */       logger.error("解析授权文件错误：", e);
/* 115 */       return "0";
/*     */     } 
/* 117 */     return "1";
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public static void checkHostList(SystemInfo systemInfo, Model model) {
/* 130 */     if (systemInfo.getPage().intValue() > StaticKeys.LICENSE_PAGE && !StaticKeys.LICENSE_STATE.equals("1")) {
/* 131 */       if (StaticKeys.LICENSE_STATE.equals("0")) {
/*     */         
/* 133 */         systemInfo.setPage(Integer.valueOf(1));
/* 134 */         systemInfo.setPageSize(Integer.valueOf(10));
/* 135 */         model.addAttribute("msg", "个人版最多监控10项，请点击页面底部网站，联系我们升级到专业版");
/* 136 */       } else if (StaticKeys.LICENSE_STATE.equals("2")) {
/*     */         
/* 138 */         systemInfo.setPage(Integer.valueOf(1));
/* 139 */         systemInfo.setPageSize(Integer.valueOf(10));
/* 140 */         model.addAttribute("msg", "授权已过期，请点击页面底部网站，联系我们获取授权");
/* 141 */       } else if (StaticKeys.LICENSE_STATE.equals("3")) {
/*     */         
/* 143 */         systemInfo.setPage(Integer.valueOf(StaticKeys.LICENSE_PAGE));
/* 144 */         model.addAttribute("msg", "监控节点数量已超过授权节点数量，授权节点数量" + StaticKeys.LICENSE_NUM + "，请点击页面底部网站，联系我们升级授权");
/*     */       } 
/*     */     }
/*     */ 
/*     */ 
/*     */     
/* 150 */     if (StaticKeys.LICENSE_STATE.equals("0") || StaticKeys.LICENSE_STATE.equals("2")) {
/* 151 */       systemInfo.setPageSize(Integer.valueOf(10));
/*     */     }
/*     */   }
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */   
/*     */   public static void maxLicense_10(Model model, HttpServletRequest request) {
/* 165 */     String liceFlage = request.getParameter("liceFlage");
/* 166 */     if (!StringUtils.isEmpty(liceFlage))
/*     */     {
/* 168 */       if (!StaticKeys.LICENSE_STATE.equals("1"))
/* 169 */         if (StaticKeys.LICENSE_STATE.equals("0")) {
/* 170 */           model.addAttribute("msg", "个人版最多监控10项，请点击页面底部网站，联系我们升级到专业版");
/* 171 */         } else if (StaticKeys.LICENSE_STATE.equals("2")) {
/* 172 */           model.addAttribute("msg", "授权已过期，请点击页面底部网站，联系我们获取授权");
/* 173 */         } else if (StaticKeys.LICENSE_STATE.equals("3")) {
/* 174 */           model.addAttribute("msg", "监控节点数量已超过授权节点数量，授权节点数量" + StaticKeys.LICENSE_NUM + "，请点击页面底部网站，联系我们升级授权");
/*     */         }  
/*     */     }
/*     */   }
/*     */ }


/* Location:              /Users/zhangyongxin/soft-install/wgcloud/wgcloud-v3.3.5/server/bank/wgcloud-server-release.jar!/BOOT-INF/classes/com/wgcloud/util/license/LicenseUtil.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */